IEEE 802.11 is a technology standard for WLAN (Wireless LAN), which has been widely used for both infrastructure and ad hoc networks. Nodes in an ad hoc network are typically configured to communicate with other node(s) in the ad hoc network over a single (same) channel frequency. With an increase in transmitting network nodes, channel capacity eventually becomes a data throughput bottleneck.
FIG. 1 shows an ad hoc network 100 including some number of computing device network nodes (“nodes”), for example, nodes 1 through 6. In this example, each of the nodes 1-6 is configured to communicate with specific ones of the other nodes over a same single channel frequency (e.g., channel 1) using 802.11 standard communications. However, and since only one node can transmit at any particular time, each node pair utilizes at most ⅓ of the channel's data-throughput capacity. If too many nodes attempt to communicate at a same time over the same channel, data throughput performance rapidly degrades.
To mitigate mutual data transmission interference on a same spectrum band, the IEEE 802.11 standard provides for multiple orthogonal frequency channels, essentially increasing network data throughput capacity. For example, 802.11b defines eleven (11) channels; three (3) of which are orthogonal (non-overlapped), and 801.11a defines thirteen (13) orthogonal channels. FIG. 2 shows ad hoc network 200 with node-pairs communicating on different orthogonal channels to reduce mutual transmission interference. In this example, node pairs (1, 2) operate over channel 6, node pairs (3, 4) operate over channel 1, and node pairs (5, 6) operate over channel 11. Each of the arrows showing traffic patterns 202 through 206 include different fill (e.g., hatching) to represent different traffic volume across respective ones of the links between the illustrated nodes. In this scenario, although each node pair can simultaneously transmit data, a node communicating over a particular channel will not be able to communicate with any node configured to communicate over a different channel.
Software-controlled channel assignment and switching techniques have been developed to address some of the described limitations. These conventional techniques allows nodes to communicate on a respective channel frequency, and at the same time, maintain connectivity to nodes configured to transmit over different channels to accommodate different traffic patterns, by allowing. An exemplary such scenario is shown in FIG. 3, where node 3 on channel 1 maintains link connectivity to both node 2 on channel 6 (see traffic pattern 302) and node 6 on channel 11 (see traffic pattern 304). However, existing channel switching techniques typically use a fixed pattern to emulate all possible arbitrary traffic and connectivity patterns in an ad hoc network. Such emulation is substantially problematic because it assumes that all nodes will follow similar same behavior, which is not always the case.
One conventional channel switching technique, for example, provides for a transmitting node to switch channels after each packet transmission. Such packet-by-packet switching operations often result in prohibitive amounts of processing overhead due to the corresponding time-consuming channel switching latencies. For instance, packet transmission time in 802.11 is approximately 300 microseconds (us). Even if a NIC can switch as fast as 100 us and two nodes can synchronize with ms accuracy, packet switching overhead in such a packet-b-packet level channel switching scheme is still an excessive 33%. In another example, a component-based conventional channel switching technique configures all nodes in a particular communication session to transmit on a same channel. In this technique, the channel does not change for the duration of the communication session. Although this essentially reduces channel switching latencies as compared to the packet-by-packet switching schemes, this technique is least flexible in using channel diversity.
For example, existing component-based channel assignment techniques would not be able to achieve throughput gain for ad hoc network configurations such as shown in FIG. 4, which represents a combination pattern of FIGS. 2 and 3. Referring to FIG. 4, traffic patterns 402 through 410 across respective ones of channels 1, 6 and 11 are illustrated. As shown, some nodes always communicate on the same channel. For instance, nodes 1 and 2 in this example communicate on only channel 6 (see traffic pattern 402) and nodes 5 and 6 communicate only on channel 11 (see traffic pattern 406). Other nodes work across multiple channels. For instance node 3 in this example sometimes works on channel 1, for instance, to communicate with node 4 (see traffic pattern 404). Node 3 of this example is also configured to operate over channel 6 to communicate with node 2 (see traffic pattern 408), and over channel 11 to communicate with node 6 (see traffic pattern 410). Although existing MAC level channel switching schemes can achieve throughput gain and maintain node connectivity for the illustrative ad hoc network of FIG. 4, existing MAC level channel switching schemes are somewhat limited in such scenarios.
For instance, conventional MAC level channel switching schemes switch channels only at edges of predetermined and fixed time slots, wherein all packets in a particular time slot are transmitted on the same channel. Such conventional super-frame level schemes are limited. For instance, existing MAC level channel switching schemes generally require a node to change channels consistently on a per super-frame or time slot basis, making such schemes too inflexible to accommodate large channel switching latencies. Additionally, existing MAC level channel switching schemes divide a super-frame into control and data time, which may be substantially problematic. For instance, such dividing a super-frame in this manner may cause: (a) underutilization of data time; (b) substantial data throughput delays decreasing response time per hop due to a one-service opportunity per super-frame; and (c) a control channel time-bottleneck because each node is typically required to send a signaling message to contend access on a per super-frame basis. Furthermore, such MAC level schemes are incompatible with legacy 802.11-based systems, either requiring modifications to the 802.11 MAC (e.g., extending the power saving mode) or use of a proprietary MAC.